package com.skywolf.chem.match.params.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.skywolf.chem.match.entity.Sponsor;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单详情
 *
 * @Author sj
 * Date on 2021/10/8  9:59
 * @Version 1.0
 */
@Data
public class OrderInfoQueryVo {

    private Long matchId;
    @ApiModelProperty(value = "订单号")
    private String orderSn;

    @ApiModelProperty(value = "订单编号")
    private Long id;

    @ApiModelProperty(value = "赛事名称")
    private String matchName;

    @ApiModelProperty(value = "组别名称")
    private String matchGroupName;

    @ApiModelProperty(value = "组别比赛开始时间-结束时间")
    private String groupTime;

    @ApiModelProperty(value = "订单总价")
    private BigDecimal totalAmount;

    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Long totalCount;

    @JsonIgnore
    @ApiModelProperty(hidden = true)
    private Long payCount;

    @ApiModelProperty(value = "参赛人数")
    private Integer peopleCount;

    @ApiModelProperty(value = "组别价格")
    private BigDecimal groupPrice;

    @ApiModelProperty(value = "实付总额")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "赛事类型")
    private String matchType;

    @ApiModelProperty(value = "支付方式【1->微信jsapi；2->支付宝】")
    private Integer payType;

    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "退款金额")
    private BigDecimal refundPrice;

    @ApiModelProperty(hidden = true)
    @JsonIgnore
    private LocalDateTime createTime;

    @ApiModelProperty(value = "订单过期时间")
    private String passTime;

    @ApiModelProperty("主办方电话列表")
    private List<Sponsor> mobileList;

    @ApiModelProperty(value = "报名人列表")
    private List<ApplyUserInfoQueryVo> applyUserInfoQueryVos;

    @Data
    public static class ApplyUserInfoQueryVo {
        @ApiModelProperty(value = "id")
        private Long id;

        @ApiModelProperty(value = "参赛人姓名")
        private String userName;

        @ApiModelProperty(value = "参赛人电话号码")
        private String phone;

        @ApiModelProperty(value = "参赛人性别")
        private Integer gender;

        @ApiModelProperty(value = "参赛人身份证号码")
        private String idCard;

        @ApiModelProperty(value = "100:已经报名  101:取消报名(待审批)   102：取消报名(已经退款-审核通过)   103:退款失败 104：取消报名(审核不通过)   105提交订单未付款")
        private Integer status;
    }
}
